﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QuestFramework;

namespace QuestFramework.Combat
{
    public class Character
    {
        #region Private Members
        private string name;
        private ClassType characterClass;

        private int strength;
        private int dexterity;
        private int constitution;
        private int wisdom;
        private int charisma;
        private int intelligence;

        private int healthPoints;
        private int experiencePoints;
        private int actionPoints;
        private int virtuePoints;
        #endregion

        #region Public Properties
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public ClassType CharacterClass
        {
            get { return characterClass; }
            set { characterClass = value; }
        }

        public int Strength 
        { 
            get { return strength; }
            set { strength = value; }
        }

        public int Dexterity 
        { 
            get { return dexterity; }
            set { dexterity = value; }
        }

        public int Constitution 
        { 
            get { return constitution; }
            set { constitution = value; }
        }

        public int Wisdom
        {
            get { return wisdom; }
            set { wisdom = value; }
        }

        public int Charisma
        {
            get { return charisma; }
            set { charisma = value; }
        }

        public int Intelligence
        {
            get { return intelligence; }
            set { intelligence = value; }
        }

        public int HealthPoints
        {
            get { return healthPoints; }
            set { healthPoints = value; }
        }

        public int ExperiencePoints
        {
            get { return experiencePoints; }
            set { experiencePoints = value; }
        }

        public int ActionPoints
        {
            get { return actionPoints; }
            set { actionPoints = value; }
        }

        public int VirtuePoints
        {
            get { return virtuePoints; }
            set { virtuePoints = value; }
        }
        #endregion

        public Character()
        {
            name = "Hero";
            characterClass = ClassType.Fighting;

            strength = 8;
            dexterity = 3;
            constitution = 6;
            wisdom = 4;
            charisma = 2;
            intelligence = 7;

            healthPoints = 100;
            experiencePoints = 0;
            actionPoints = 3;
            virtuePoints = 0;
        }
    }
}
